<?php
/**
 * Service_Price - для работы с ценами
 *
 * 
 * @author Дмитрий Кузьма <kouzma.d@gmail.com>
 * @version 1.0
 */
class Service_Price {
	
  /**
   * Метод возвращает значение стоимости с учетом пробельного удобства восприятия
   *
   * @param integer $price - цена
   * @return string
   */
  public static function getPrice($price) {
    $curLeftPrice = intval($price);
    $tempPrice = $price;
    $retStr = '';
    $numbers = 0;
    do {
      if (!($numbers % 3) && $numbers) $retStr = ' ' . $retStr;
      $numbers++;
      $tempPrice = intval($curLeftPrice / 10);
      $retStr = ($curLeftPrice - $tempPrice * 10) . $retStr;
      $curLeftPrice = $tempPrice;
    } while ($tempPrice > 0);
    return $retStr;
  }	
  
  /**
   * Метод возвращает значение номера заказа с учетом восприятия через дефис
   *
   * @param integer $number - номер заказа
   * @return string
   */
  public static function getNumber($number, $delimiter = '-', $numbersAmount = 6) {
    $curLeftNumber = intval($number);
    
    $retStr = $startPart = '';
    $numbers = 0;
    $realSize = 0;
    $tempNumber = $number;
    do  {
      $tempNumber /= 10;
      $realSize++;
    } while ($tempNumber >= 1);
    
    for ($i = 1; $i <= $numbersAmount - $realSize; $i++) {
      $startPart .= '0';
      if (!(($numbersAmount - $i) % 3)) $startPart .= $delimiter;
    }
    $tempNumber = $number;
    do {
      if (!($numbers % 3) && $numbers) $retStr = $delimiter . $retStr;
      $numbers++;
      $tempNumber = intval($curLeftNumber / 10);
      $retStr = ($curLeftNumber - $tempNumber * 10) . $retStr;
      $curLeftNumber = $tempNumber;
    } while ($tempNumber > 0);
    return $startPart . $retStr;
  }
  
  /**
   * Метод возвращает значение стоимости с учетом пробельного удобства восприятия а также со словом рублей в нужном падеже
   *
   * @param integer $price - цена
   * @return string
   */
  public static function getPriceWithRubbles($price) {
    return '<span class="price">' . self::getPrice($price) . '</span> ' . Service_Declension::getRublesDisclansion(intval($price));
  }
}
?>